const LINE_STYLE = {
  Color: 1,
  LinStyleID: 0,
  LinStyleID2: 22,
  LinWidth: 0.05,
  Xscale: 10,
  Yscale: 10,
};

function addLine({ position, attr, service, layer }) {
  var pointObj = [];
  //   for (let i = 0; i < position.length; i++) {
  //     pointObj.push(new Zondy.Object.Point2D(position[i][0], position[i][1]));
  //   }
  for (let item of position) {
    pointObj.push(new Zondy.Object.Point2D(item[0], item[1]));
  }
  //构成折线的弧段
  var gArc = new Zondy.Object.Arc(pointObj);
  //构成线的折线
  var gAnyLine = new Zondy.Object.AnyLine([gArc]);
  //设置线要素的几何信息
  var gline = new Zondy.Object.GLine(gAnyLine);
  //设置要素的几何信息
  var fGeom = new Zondy.Object.FeatureGeometry({
    LinGeom: [gline],
  });
  /* 属性信息 */

  //设置添加线要素的图形参数信息
  var clineInfo = new Zondy.Object.CLineInfo({
    Color: 1,
    LinStyleID: 0,
    LinStyleID2: 22,
    LinWidth: 0.05,
    Xscale: 10,
    Yscale: 10,
  });
  //设置要素的图形参数信息
  var graphicInfo = new Zondy.Object.WebGraphicsInfo({
    InfoType: 2,
    LinInfo: clineInfo,
  });
  /* 属性 */
  //设置添加线要素的属性信息
  var attValue = attr.map((item) => item.value);
  /* 要素 */
  //创建一个线要素
  var newFeature = new Zondy.Object.Feature({
    fGeom: fGeom,
    GraphicInfo: graphicInfo,
    AttValue: attValue,
  });
  //设置要素为线要素
  newFeature.setFType(2);
  console.log(newFeature);
  /* 要素集 */
  //创建一个要素数据集
  var featureSet = new Zondy.Object.FeatureSet();
  var fldNumber = attr.length; //属性个数
  var fldName = attr.map((item) => item.key);
  var fldType = attr.map((item) => item.type);
  //创建属性结构设置对象
  var cAttStruct = new Zondy.Object.CAttStruct({
    FldName: fldName,
    FldNumber: fldNumber,
    FldType: fldType,
  });
  //设置要素数据集的树形结构
  featureSet.AttStruct = cAttStruct;
  //将添加的线要素添加到属性数据集中
  featureSet.addFeature(newFeature);
  console.log(featureSet);
  /* 服务 */
  //创建一个地图编辑对象
  var editDocFeature = new Zondy.Service.EditDocFeature("new_city04", 1, {
    ip: "localhost",
    port: "6163", //访问IGServer的端口号，.net版为6163，Java版为8089
  });
  editDocFeature.add(featureSet, onLineSuccess(layer));
}
//添加线要素回调函数
function onLineSuccess(layer) {
  return function (data) {
    if (data.succeed) {
      alert("添加线要素成功！");
      layer.refresh();
    } else {
      alert("添加线要素失败！");
    }
  };
}
